$(function () {
    const enabled={
        false:"暂停",
        true:"正常",
    };
    const status={
        false:"失败",
        true:"成功",
    };


    /*定时任务列表*/
    $("#schedule_data_grid").datagrid({
        url:"/schedule/list",
        columns:[[
            {field:'beanName',title:'bean名称',width:100,align:'center'},
            {field:'params',title:'参数',width:100,align:'center'},
            {field:'cronExpression',title:'cron表达式',width:100,align:'center'},
            {field:'remark',title:'备注',width:100,align:'center'},
            {field:'enabled',title:'状态',width:100,align:'center',formatter:function (value,row,index) {
                    return enabled[value];
                }},
        ]],
        fit:true,
        fitColumns:true,
        rownumbers:true,
        pagination:true,
        toolbar:"#schedule_toolbar",
        singleSelect:true,
        striped:true,
    });

    /*定时任务日志列表*/
    $("#schedule_log_data_grid").datagrid({
        url:"/scheduleLog/list",
        columns:[[
            {field:'beanName',title:'bean名称',width:100,align:'center'},
            {field:'params',title:'参数',width:100,align:'center'},
            {field:'error',title:'错误信息',width:100,align:'center'},
            {field:'createTime',title:'执行时间',width:100,align:'center'},
            {field:'times',title:'耗时时间',width:100,align:'center'},
            {field:'status',title:'状态',width:100,align:'center',formatter:function (value,row,index) {
                    return status[value];
                }},
        ]],
        fit:true,
        fitColumns:true,
        rownumbers:true,
        toolbar:"#schedule_log_toolbar",
        pagination:true,
        singleSelect:true,
        striped:true,
    });

    /*监听详情点击*/
    $("#detail").click(function () {
        $("#schedule_log_data_grid").datagrid("reload");
        $("#schedule_log_dialog").dialog("open");
    });

    /*定时任务日志对话框*/
    $("#schedule_log_dialog").dialog({
        width:1000,
        height:400,
        closed:true,
        title:'定时任务执行日志',
        buttons:[
            {
                text:'关闭',
                handler:function(){
                    $("#schedule_log_dialog").dialog("close");
                }
            }
        ],
    });

    /*对话框*/
    $("#schedule_dialog").dialog({
        width:400,
        height:300,
        closed:true,
        buttons:[
            {
                text:'保存',
                handler:function(){

                    /*判断是新增还是编辑*/
                    var id = $("[name = 'id']").val();
                    var url;
                    if(id){
                        /*编辑*/
                        url = "/schedule/update";
                    }else {
                        /*新增*/
                        url = "/schedule/save";
                    }
                    /*提交表单*/
                    $('#scheduleForm').form("submit",{
                        url:url,
                        success:function(data){
                            data = $.parseJSON(data);
                            if(data.success){
                                $.messager.alert("温馨提示",data.msg);
                                /*关闭对话框*/
                                $("#schedule_dialog").dialog("close");
                                /*重新加载数据*/
                                $("#schedule_data_grid").datagrid("reload");
                            }else {
                                $.messager.alert("温馨提示",data.msg);
                            }
                        }
                    })
                }
            },
            {
                text:'关闭',
                handler:function(){
                    $("#schedule_dialog").dialog("close");
                }
            }
        ],
    });


    /*监听添加的点击事件*/
    $('#add').click(function () {

        /*清空数据*/
        $('#schedule_dialog').dialog("setTitle","添加定时任务");
        $("#scheduleForm").form("clear");
        $('#schedule_dialog').dialog("open");
        /*取消密码验证*/
    });

    /*监听编辑的点击事件*/
    $("#edit").click(function () {
        /*获取当前选中的行*/
        var rowData = $("#schedule_data_grid").datagrid("getSelected");

        if(!rowData){
            $.messager.alert("提示","选择一行数据进行编辑");
            return;
        }
        /*发送ajax来回显*/
        $.get("/schedule/getScheduleById?id="+rowData.id,function (data) {
            /*弹出对话框*/
            $('#schedule_dialog').dialog("setTitle","编辑定时任务");
            $('#schedule_dialog').dialog("open");
            /*选中数据的回显*/
            $("#scheduleForm").form("load",data);
        })


    });

    /*状态下拉框*/
    $("#enabled").combobox({
        width:160,
        panelHeight:"auto",
        textField:"label",
        valueField:"value",
        data:[
            {label:"启用",value:true},
            {label:"禁用",value:false}
        ],
        prompt:"请选择状态",
        editable:false
    });


    /*监听恢复按钮点击*/
    $("#resume").click(function(){
        /*获取当前选中的行*/
        var rowData = $("#schedule_data_grid").datagrid("getSelected");
        if(!rowData){
            $.messager.alert("提示","选择一行数据进行编辑");
            return;
        }
        if(rowData.enabled){
            $.messager.alert("温馨提示","该定时任务已被启用");
            return;
        }
        /*提醒用户，是否做离职的操作*/
        $.messager.confirm("确认","是否恢复此定时任务?",function (res) {
            if(res){
                /*离职操作*/
                $.post("/schedule/resume?id="+rowData.id+"&enabled=true",function (data) {
                    if(data.success){
                        $.messager.alert("温馨提示",data.msg);
                        /*关闭对话框*/
                        /*重新加载数据*/
                        $("#schedule_data_grid").datagrid("reload");
                    }else {
                        $.messager.alert("温馨提示",data.msg);
                    }
                })
            }
        })
    });

    /*监听暂停按钮点击*/
    $("#pause").click(function(){
        /*获取当前选中的行*/
        var rowData = $("#schedule_data_grid").datagrid("getSelected");
        if(!rowData){
            $.messager.alert("提示","选择一行数据进行编辑");
            return;
        }
        if(!rowData.enabled){
            $.messager.alert("温馨提示","该定时任务已被暂停");
            return;
        }
        /*提醒用户，是否做暂停此定时任务的操作*/
        $.messager.confirm("确认","是否暂停此定时任务?",function (res) {
            if(res){
                /*离职操作*/
                $.post("/schedule/pause?id="+rowData.id+"&enabled=false",function (data) {
                    if(data.success){
                        $.messager.alert("温馨提示",data.msg);
                        /*关闭对话框*/
                        /*重新加载数据*/
                        $("#schedule_data_grid").datagrid("reload");
                    }else {
                        $.messager.alert("温馨提示",data.msg);
                    }
                })
            }
        })
    });


    /*监听立即执行按钮点击*/
    $("#run").click(function(){
        /*获取当前选中的行*/
        var rowData = $("#schedule_data_grid").datagrid("getSelected");
        if(!rowData){
            $.messager.alert("提示","选择一行数据进行编辑");
            return;
        }
        /*提醒用户，是否做执行此定时任务的操作*/
        $.messager.confirm("确认","是否立即执行此定时任务?",function (res) {
            if(res){
                /*离职操作*/
                $.post("/schedule/run?id="+rowData.id,function (data) {
                    if(data.success){
                        $.messager.alert("温馨提示",data.msg);
                        /*关闭对话框*/
                        /*重新加载数据*/
                        $("#schedule_data_grid").datagrid("reload");
                    }else {
                        $.messager.alert("温馨提示",data.msg);
                    }
                })
            }
        })
    });

    /*监听删除的点击*/
    $("#remove").click(function () {
        /*获取当前选中的行*/
        var rowData = $("#schedule_data_grid").datagrid("getSelected");

        if(!rowData){
            $.messager.alert("提示","选择一行数据进行编辑");
            return;
        }
        /*提醒用户，是否做删除菜单的操作*/
        $.messager.confirm("确认","是否删除该定时任务?",function (res) {
            if(res){
                /*离职操作*/
                $.post("/schedule/delete?id="+rowData.id,function (data) {
                    if(data.success){
                        $.messager.alert("温馨提示",data.msg);
                        /*关闭对话框*/
                        /*重新加载数据*/
                        $("#schedule_data_grid").datagrid("reload");
                    }else {
                        $.messager.alert("温馨提示",data.msg);
                    }
                })
            }
        })
    });

    /*监听搜索按钮点击*/
    $("#searchbtn").click(function () {
        /*获取搜索的内容*/
        var keyword = $("[name='keyword']").val();
        /*重新加载列表并且把keyword传过去*/
        $("#schedule_data_grid").datagrid("load",{keyword:keyword});
    });

    /*监听刷新按钮点击*/
    $("#reload").click(function () {
        /*清空搜索的框的内容*/
        var keyword = $("[name='keyword']").val("");
        /*重新加载列表*/
        $("#schedule_data_grid").datagrid("load",{});
    });

    /*监听搜索按钮点击*/
    $("#searchbtnLog").click(function () {
        /*获取搜索的内容*/
        var keyword = $("#keywordLog").val();
        /*重新加载列表并且把keyword传过去*/
        $("#schedule_log_data_grid").datagrid("load",{keyword:keyword});
    });

    /*监听刷新按钮点击*/
    $("#reloadLog").click(function () {
        /*清空搜索的框的内容*/
        var keyword = $("#keywordLog").val("");
        /*重新加载列表*/
        $("#schedule_log_data_grid").datagrid("load",{});
    });
});